IF exists(SELECT * FROM dbo.sysobjects WHERE name='fr_maakXSL' AND xtype='P') 
BEGIN
	DROP PROCEDURE fr_maakXSL
END
GO

CREATE          procedure fr_maakXSL(@aard char(1),@periode char(2),@schooljaar char(4))
as
delete from fr_XSL 
	where aard = @aard 
		and periode = @periode 
		  and jaar = @schooljaar
--De veranderlijken, die de waarden uit de tabel zullen opslaan en de bijhorende cursor.
declare @groepsnaam varchar(50)
declare @formaat varchar(20)
declare @tekstregel varchar(1000)
declare @tekstNr int
declare @deGroepsnaam varchar(50)
declare @hetFormaat varchar(20)
declare @deAard char(1)
declare @dePeriode int
declare @voorstelNr int
declare @@ptrXSL varbinary(16)
declare @nLine char(2)

set @nLine= char(13)+char(10)
set @deGroepsnaam=''

--De tabel wordt ingelezen
declare deCursor cursor local for 
select distinct groepsnaam,formaat,-1 as voorstelNr,-1 as tekstNr,'<?xml version="1.0"  encoding="ISO-8859-1" ?>'
		+ '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">'
from fr_XSLcompositie
  where aard = @aard 
	and periode = @periode
union
select c.groepsnaam,c.formaat,c.voorstelNr,x.tekstNr,x.tekstregel
from fr_XSLCompositie as c 
  left join fr_XSLSnippets as x
	on c.formaat + '/' + c.xslNaam = x.xslNaam
		and c.periode = x.periode
		  and c.aard = x.aard
      		    and c.formaat = x.formaat
  where c.aard = @aard 
	and c.periode = @periode
union 
select distinct groepsnaam,formaat,99999,999999,'</xsl:stylesheet>'
from fr_XSLcompositie
  where aard = @aard 
	and periode = @periode
order by groepsnaam,formaat,voorstelNr,tekstNr
for read only

open deCursor
fetch next from deCursor into @groepsnaam,@formaat,@voorstelNr,@tekstNr,@tekstregel
while (@@fetch_status=0)
begin
  if not((@groepsnaam = @deGroepsnaam) and (@formaat = @hetFormaat))
    begin
	insert into fr_XSL(groepsnaam,formaat,aard,periode,jaar,XSLTekst)
	values(@groepsnaam,@formaat,@aard,@periode,@schooljaar,'')
	select @@ptrXSL = textptr(XSLTekst) from fr_XSL
	  where groepsnaam = @groepsnaam 
		and formaat = @formaat
  			and aard = @aard 
				and periode = @periode 
					and jaar=@schooljaar
	set @deGroepsnaam = @groepsnaam
	set @hetFormaat = @formaat
    end
  updatetext fr_XSL.XSLtekst @@ptrXSL null 0 @tekstregel
  updatetext fr_XSL.XSLtekst @@ptrXSL null 0 @nLine 
  fetch next from deCursor into @groepsnaam,@formaat,@voorstelNr,@tekstNr,@tekstregel
end
close deCursor
deallocate deCursor